Social Bunny Tweaks
This mod is pretty much a very early WIP. But I was so done with the app being so repetitive. So this is what I've done in an attempt to fix it.
If you're only interested on downloading the mod, along with its list of features, you can find it here.
This page also serves as a walkthrough/tutorial on how to make your own posts, if you wish. Keep in mind that your mod and mine WILL conflict until I figure out how to use XML injector for this. Or another way that doesn't require us to override the social media module itself.
In this tutorial, you'll also learn to put strings in the game, make new buffs and loots. I hope.
Last updated: August 3rd, 2025.
I'm planning on adding more detailed interactions.
Also, please read How to Stop Adults from Complaining About Prom, as this tutorial is a direct sequel of that one.
Table of Contents
- New posts when you're grieving
- Why Changing The Moodlet Itself is a Terrible Idea
New Posts when you're grieving
Specifically five new posts! And it's easy to add more, too!
This is how it works:
EA did the misery of putting all the possible posts of the social bunny, along with the associated moodlets and loot In the same module tuning. So the first time you ever open it, you won't even know what you're looking at. The entire thing is huge. I didn't even try to read everything in one sitting.
Here's my actual notes when I saw that:
"Also, it seems I'll have to overwrite the whole social_media.social_media_tuning because ALL THE POSTS ARE THERE. NO SEPARATE MODULE? REALLY EA?! Every possible post is under types_of_posts. I hate it here."— Yours truly.
The good thing is, the posts themselves aren't that hard to understand once you break it into smaller chunks. I actually made a graph in Obsidian to help me make sense of what I was seeing.

You can read the full explanation on enums by by Frankk here. It's a bit buried on the archived-mod-help channel. If you don't have discord or don't have access to that channel, I apologise! I asked Frankk himself for permission to put his explanation in this website, but in the meantime, this will have to do.
Once we know exactly how each different post in the Social Bunny works, we just need to replicate what we're seeing, and change it until it does what we want it to do! It sounds complicated, and I even struggled to make it work at first. But if we take it step by step, you'll see we're going to be done before we realize!
Step 1: How do we make a new post?

So, as we saw earlier, each post has the same five components: content, context_post, loots_on_post, narrative and polarity.
For now, the post itself doesn't matter. First, we need to make sure our assumptions about how the module works are correct. What do we know now?
We know that a post needs a specific buff to be available. And we know what moodlet we want to make said post available. In my case, I'm grabbing "buff_Grief_Depression_Periodic", which in game looks like this image!
If you're a bit confused on how we arrived to that conclusion, and want to go a bit more in depth, try checking out How I stopped adults from complaining about Prom. That was my first view on how posts work in the Social Bunny App.
If you want to try with a different buff, but don't know how to find it on TDESC Builder, try looking it up with the in-game text on Lumpinou's EA Tuning Example Finder. I swear that's a life saver.
Anyway, let's check if we can make our sim actually post.
Step by Step instructions:
- 1. Open "social_media.social_media_tuning" ion the TDESC Builder.
- 2. Once it loads, click on "SocialMediaTunables".
- 3. Scroll all the way down to "TYPES_OF_POSTS", and open that too.
- 4. Once again, scroll all the way down, and click on the plus icon.
- 5. A new "U" thingy will appear, open that too.
This is the fun part!

Inside of content, FOR NOW, we won't write anything new. We'll use an already existing string in the game. You'll see why in a moment. Click on the clip and a new window will open. You can select any in-game text you want for this. In my case, I'll just go for the "I regret coming to Prom, is that bad?!"
Don't ask me why I picked that string, not even I know. I guess I picked it because I forbade adults from posting that under normal circumstances, and my current guinea pig is an adult.
Here, I enabled "context_post" and then selected "buff_Grief_Depression_Periodic". I want my sims with that specific moodlet to post this. For the sake of testing, I ignored everything else EXCEPT "narrative" and "polarity", which I set to SAD and NEGATIVE respectively.
The end of the module looked like this once I made those changes.
Then I opened the game and, guess what! IT WORKED!


There are a COUPLE problems with this, though.
- 1. We don't want the "Recent Events" to say "Missing Them". At least, I don't want that. I want it to say something different.
- 2. We still need to change the in-game text for the post itself.
- 3. We can post the same thing forever and ever if we want to. Usually, you can only post about the same thing once every X amount of time.
So, while we were super close in our initial assumption on how posts work, it wasn't perfect. But we learned extra stuff! Extra stuff that will come in later.
Step 2: Understanding how posts themselves work
The first and most important thing that we got "wrong" is that "context_post" is the moodlet that allowed that post to be made.
While this sin't entirely wrong, the problem is that we see that ugly "{0.SimFirstName}" in the "Recent Events" UI. We could just ignore that and go directly to the next step. But I hate it, so I'm going to fix it.
So, we're going to need a new buff that not only has the information we want the player to see in the UI, it also needs to be somehow connected to the buff the player will see.
I think the best way to approach anything in modding is to see how things work in game with existing interactions. Or in this case, social media posts. You can pick any post you want, but I'm going to pick a post I'm very familiar with.


If we examine the context_post here, we'll find this buff that the player will never see in game, but that our sim will have when they return home. If this looks familiar, it's because it is! It's what we actually see in the UI when we want our Sim to post about their travel.
We also need to look at the loots the Sim gets when they post this. It has two loot actions.
This part got VERY confusing, and I'm struggling to put into words how to understand the posts themselves. I tried making a graph, but turns out making a graph that I understand, and making a graph EVERYONE will understand, are two completely different skills.
Still, I did my best. If there's something that's unclear, please contact me so I can try and provide another explanation.
Please click or tap on the image to see it in full resolution.
A terrible "Too Long; Didn't See" from the previous graph.
After our sim posts about their stressful day, they'll get rid of the buff that allowed them to post (which is the same we see in the Social Bunny UI), and they'll get an additional buff that acts as a cooldown.
This way, the game prevents Sims from posting about the same thing to infinity (or until the buff disappears).
Step 3: New text, new buffs, new icons. What's a string?
Maybe you've been wondering for a while why I'm using the word "string" instead of the word "text".
That's because, in programming, a string is a sequence of characters. It's literally text you can read.
All the text you see in the game is a different string! And modders can provide translations to their mods by making more strings. Now, I'm not going to pretend I know EXACTLY how "normal" strings and translated strings work, because I literally have no idea.
You must be itching to know how to put your own strings in game, because that might be the most important part of our mod.
At first, I followed this tutorial on how to change the in-game text. But I got easily confused in between all the strings, I was never sure what I did wrong when the text didn't appear in the game, among a other issues. This is in no way Andrew's fault, his tutorial is amazing a very well done! But there tutorial is from 2015, and now there's an easier way to put text in 2025.
Easily making Strings in 2025
Instead of following Andrew's tutorial, we're going to simplify things. We're going to use Frankk's STBL Studio. STBL stands for "String Table". This is where ALL the text for your mod will be! Simply go to the bottom right corner and click "New Project".

Say hi to my other project!
Then you'll see the following. I named it "Jimantha:Social_BunnyTweaks" because it's generally recommended to start with your creator name, followed by a colon. This is to prevent conflicts with other strings from other creators. You can "Group" and "Instance" as is. In fact, you MUST leave them as is! On "Primary Locale", you can either keep it as English or put the language your game is in/your first language.

When you click "next", you'll see the option to add or remove locales. I added all of them so the text, even if not translated, will appear in any language the user's game is set in.

From here, you can go absolutely crazy! Click on the plus sign on the bottom right corner, write whatever you want, and click "save".

You can always come back and add, edit or remove strings as you wish. Here's what the String Table for Social Bunny Tweaks looks like as I write this.

Don't forget to save! You can either click the Download icon or press Ctrl + S (Fun fact: I didn't know we could do this until I did it by inertia just a couple minutes ago! Amazing!). Make sure that in naming convention, it says "S4S". We're going to need that!

Making the necessary buffs
So, now we have our text, yay! But where do we actually put it?
Remember our little graph from earlier? Yeah. We're going to need a buff to enable our sim from posting that, a buff to act as a cooldown, and the loot to connect said buffs. This, ironically, might be the easiest step. The hard part was figuring out how they worked!
We're going to start with the buff that will appear in the Social Bunny App. In TDESC Builder, inside "social_media.social_media_tuning", go to any existing post and find its context_post and click on it. The menu on the right will change to reflect what you just clicked on. Right click on "Enabled" and, finally, in "Open Reference".

Wait for a second or two, and you'll see another tab beside "social_media.social_media_tuning". The name will correspond with the context_post you opened. Because it's the exact same!
First, so we don't override the original buff, change its name. You can change the name by going to Edit->Document Properties.

Give it a good, descriptive name! I named mine "Jimantha:buff_Social_Media_MissingThem". But you can and should name your buff better. Mine isn't very self-explanatory, which will totally come bite me later. But that's a problem for future Jim.
Let's do the easiest part: change the icon and the text. Because high heels don't really communicate that our sim misses a loved one who passed away.
Inside the builder, if we scroll all the way down to the UI section, we'll literally see a section that says "icon", along with an image of the heels. Or whatever icon the original buff uses. If we click on the clip, it'll let us search and use ANY icon we want that's already inside of the game.
In the search bar, I'm going to look for "grief". But you can search for whatever you want and pick your favourite icon.I don't think the icons will show properly if the user doesn't have the associated DLC, so be careful with these!


Both are good!
Now, where it says "buff_name", you won't see text. You'll see numbers. Hexadecimal. I have no idea why we use this, and I think Hexadecimal itself is complicated... but it's all good! We already have the number we need to put in this section!
"What are you talking about, Jim? When did we get it?"

Remember when we were playing with STBL Studio earlier? When we were making the strings, all of them had a number on the right. You can either copy it manually, or click on the key on the left of your string. Then paste that number inside buff_name. Then, and just so you don't forget what the actual string is supposed to be, right click buff_name->Inspect. A new menu will appear below the XML view.
Scroll down to the "comment" section, and paste the actual text from your string. This way, when you scroll up, the buff will look EXACTLY like you'll see it in-game, and you have made it easier for future you to track what "Jimantha:buff_Social_Media_MissingThem" is supposed to be.
I can't stress this enough. ALWAYS, ALWAYS COMMENT YOUR CODE. Document EVERYTHING. There's no downside to this. You're doing a favour to your future self and whoever wants to examine what you're doing.
Right now, with TDESC Builder there's not much space to put comments willy-nilly, but you can edit the XML manually if you want to give it a shot.
Anyway, back to the tutorial.
Back on our version of "social_media.social_media_tuning", we change the original context post with our own buff. Do this by clicking on the clip, select "tabs" and put your own, beautiful, newly created buff.

In this case, TDESC Builder will automatically put the right comment.
Why not take the chance to put our strings too? Inside of "content", we need to click the plus sign for each string we want to put. We also need to manually put the comments, but it's just copy pasting.

Can you take a guess on what's next?
We haven't made the "cooldown" buff! Let's go back to the buff we made. Did you notice we forgot to change something super important?
The blacklisted buff is still "buff_Social_Media_Disable_AtProm". Let's open it, change its name (I named mine "Jimantha:buff_Social_Media_Disable_MissingThem"), and replace "buff_Social_Media_Disable_AtProm" with our own cooldown buff. And that's literally it for this buff, it doesn't need anything else! Though you can give it an icon and a description if you please.
I also tried whitelisting "buff_Grief_Depression_Periodic" inside our context_post buff, thinking that it would automatically make it so our sim would get the option to post as soon as they got the "Missing Them" moodlet. I was wrong!

Setting up the loots_on_post
My mod, in this post and at the moment, has a single loot. But you can add more and do all sorts of things with loots! Like giving them other buffs, either existing buffs or new ones made by you! And those buffs can have different effects, but that's out of the scope of this devlog.
At first, I tried adding the context_post buff directly to the loots_on_post list. And I was a bit confused as to why TDESC Builder didn't let me. This was before I made the flow chart above and realized I totally forgot about loots. And that I couldn't avoid loots forever.
It would probably be good to grab another loot and edit it, but I wanted to try making my own loot from scratch, since what I wanted to do was relatively easy: eliminate the context_post buff and give it the cooldown buff instead.
On the left side of TDESC Builder, there's a search box that says "Search Classes...". I'm not going to pretend that I know what half of them do, all we need is type "loot" and pick something that looks good.
I picked LootActions, because I didn't want to mess with the other ones, and I honestly don't think we need those for the purpose of this mod.
Following the pattern of the other Social Bunny posts, I renamed my loot from "Jimantha:LootActions" "to "Jimantha:loot_buff_Social_Media_Disable_MissingThem", just to try and keep things consistent. It's the same name as the cooldown buff, but with "_loot" at the start!
Then, we set two different loot_actions. The first action will be in charge to add our cooldown buff, "Jimantha:buff_Social_Media_Disable_MissingThem".
This can be done by opening "loot_actions", and clicking where it says "none". Type "buff" and click the first option, which says "buff". Inside, where it says "buff_type", we'll click on the clip, go to tab and select our cooldown buff. Remember that in my case, it's named "Jimantha:buff_Social_Media_Disable_MissingThem".
The second action will be removing our context_post buff. We just need to scroll down a little bit, click on the plus icon and follow the same steps. Except that instead of clicking "buff", we click "buff_removal". Remember, we need to remove our context_post buff.
I don't think this step is necessary, but I checkmarked "Subject" and set it to "Actor" just to be extra sure this will work as intended.
In the end, this loot should look something like this.

And, lastly, we make sure to add our loot to our actual post. And it should look something like this!

With that, we're ALMOST done! There's just a couple things we need to take care of before it works as we want it to.
Step 4: Making our Sim get the right buff
Do you remember how whitelisting the "Missing Them" buff inside our context_post doesn't make the post available for our sim?
Yeah... We need a way to attach the context_post to the "Missing Them" moodlet. So, we need to make yet another loot.
To follow the same pattern as before, I named our new loot "Jimantha:loot_buff_Social_Media_MissingThem". It's the same name as before, but with "loot_" prepended.
The pattern actually goes "creator:loot_buff_Social_Media_Enable_BuffName". But I don't feel like changing the name.This loot is only in charge of adding our context_post buff. It doesn't need to add more or remove other buffs, so this one is quick and easy to make!
Before you keep reading, I'll let you know a little secret: I don't like this approach, but I couldn't think of another way to make it work.
So, let's open the original "Missing Them" moodlet. You know what I really, REALLY hate about this very specific moodlet? That searching "Missing Them" doesn't return results. And that's because the TDESC name for this moodlet is "buff_Grief_Depression_Periodic". It's not descriptive at all. And this happens in A LOT of moodlets.
Anyway, rant over. Let's go back to opening that moodlet.
Once open, in the "General" section, we have three options that start with "_loot". I hope the table below is handy.
Name | Explanation |
---|---|
_loot_on_addition | Adds the loot as soon as the sim gets this moodlet |
_loot_on_instance | Sorry, I have no idea what this does! If I had to take a guess, it adds the loot no matter if the sim just got the moodlet or not? |
_loot_on_removal | Adds the loot when the moodlet is removed |
Since I don't know what _loot_on_instance does, and giving our sim the loot on removal in this specific case is basically useless, let's put our loot on _loot_on_addition.
We just need to press the plus button, click on the clip and go to tabs. From here, we just select the loot we just made.
Now, go to File -> Download package. Make sure everything you changed is in here! Give the package a cute and descriptive name, and save it somewhere safe.

Step 5: Actually putting our strings in the game
I promise this is literally the last step. We already did all the heavy lifting.
Open Sims 4 Studio and click on "My Projects". From there, search for your .package file and open it.
I know it looks pretty intimidating, but we don't need to change anything here. Do you remember where you saved your String Table? If not, go back to STBL Studio and download your strings again. Unlike TDESC Builder, STBL Studio does save your work even after you close it.
Then, back to Sims 4 Studio, click on "Batch Import" and select your String Table. Then simply press "save" to save your .package file.
If for some reason you only have an English string table, go to Tools -> Modding -> Copy string tables to all languages.
And... it's done. Our Social Bunny Posts are in the game. Go test it! I personally almost cried when I saw my post in the game.

"So does Paula by the sound of things" - A friend of mine when he saw the image above.
Why Changing The Moodlet Itself is a Terrible Idea
So, I'm pretty embarrassed about this approach. Do you remember what the actual moodlet is like, right? That it gives Sad +2 and only lasts three hours?
Well, on the side, I've been slowly changing and overhauling moodlets to make them more intense and last longer. So this is what that moodlet looks like in my game, and what this mod includes.

This has a couple implications. If you get my mod, your sims will be extra, EXTRA sad for longer in comparison with the vanilla game, and if you have any other mod that touches this moodlet, it might (and will) conflict. You can't have both!
This also means that if you make your own mod, or you want to mix and match with other mods that add new posts and interactions, it will conflict too! Unless you manually modify this to include the other buffs, the other posts and the other strings.
This mod is NOT supposed to change or touch moodlets. I had to move this away from my MoodletOverhaul folder to include this on Social Bunny Tweaks. This is a terrible approach and should not be replicated.
At least changing the moodlet to its original values is easy. If for some reason you still want this mod, open the .package on TDESC Builder, go to "workspace", open "buff_Grief_Depression_Periodic" and change "max_duration" to its original value of "180", and then change "mood_weight" from "10" back to "2"
The good news is, we can add as many strings as we want for this very specific moodlet. The bad news is that, the more moodlets I change and add to my mod, the harder it'll be to keep compatibility with other mods.
I literally can't think about enough words to explain how TERRIBLE this approach was. No one should do this. As soon as I think about a better approach, I'm rewriting this entire thing.
In the meantime, stay tuned for some debugging tips. I also want to add a section of a weird error I had, how to fix it, and advice on how to slowly save your progress without relying on TDESC Builder. Right now is 02:24 A.M and I need to lie down. Bye bye!